#ifndef CODIFICADORVIDEO_H_
#define CODIFICADORVIDEO_H_
#ifdef __cplusplus
#define __STDC_CONSTANT_MACROS
#ifdef _STDINT_H
#undef _STDINT_H
#endif
# include <stdint.h>
#endif
extern "C" {
	#include <libavformat/avformat.h>
	#include <libswscale/swscale.h>
}
#include <fstream>

class CodificadorVideo {
private:
    AVCodec *codec;
    AVCodecContext *encoder_Ctx;
public:
    CodificadorVideo();
	virtual ~CodificadorVideo();
	void registrar_codecs();
	bool busca_encoder();
	bool abre_encoder();
	bool codificar(AVFrame **frameYUV, uint8_t **outbuf, int *outbuf_size);
	void ini_contexto(int width, int height);
	void ini_buffer(AVFrame **frameYUV, uint8_t **outbuf, int *outbuf_size);
};

#endif
